Shared memory devices, such as a dual port RAM, are normally coupled to two or more processors, each accessing the memory device during read or write operations. One of the more prevalent problems in operating such a device is the simultaneous access of the memory by competing processors. Such a condition can lead to erroneous data being read from or written to the memory. It can also lead to internal race conditions in the memory device.
One of the techniques for dealing with such a problem is to perform arbitration between competing processors, so that only one of the processors asserts control of the memory at any given time. However, the additional circuitry for arbitration slows memory operations and decreases performance.
Another technique for solving this problem is to operate the memory at a higher frequency than that of the processors (e.g., twice the frequency). Though reducing the probability of simultaneous memory accesses, the same errors can still occur. Also, the operating speed of modern high performance processors can be so fast that increasing the speed of the memory by a factor of two or more becomes difficult.